package Euclid;

public class SymbVarType extends VarType {

	public String name;
	public VarType val;
	
	public SymbVarType(String name, VarType val) {
		this.name = name;
		this.val = val;
		
		this.formula = name;
		val.formula = name;
	}
	
	@Override
	public VarType add(VarType o) {
		return val.add(o);
	}

	@Override
	public String closeFormula() {
		return name + " \\leftarrow " + val.toString();
	}

	@Override
	public VarType div(VarType o) {
		return val.div(o);
	}

	@Override
	public VarType mult(VarType o) {
		return val.mult(o);
	}

	@Override
	public VarType subtract(VarType o) {
		return val.subtract(o);
	}
	
	public VarType mod(VarType o) {
		return val.mod(o);
	}
	
	public VarType pow(VarType o) {
		return val.pow(o);
	}
	
	public VarType negate() {
		return val.negate();
	}

	public VarType not() {
		return val.not();
	}
	
	public String toString() {
		return name;
	}
}
